package arithmetic;

import java.util.Scanner;

/**
 * HJ26字符串排序
 * 知识点：
 * 1.ASCII码： A~Z:65~90 a~z:97~122 0~9:48~57
 * 2.String.charAt();
 * 3.String.replaceAll();
 * 4.String.toUpperCase()
 * 描述
 * 编写一个程序，将输入字符串中的字符按如下规则排序。
 *
 * 规则 1 ：英文字母从 A 到 Z 排列，不区分大小写。
 *
 * 如，输入： Type 输出： epTy
 *
 * 规则 2 ：同一个英文字母的大小写同时存在时，按照输入顺序排列。
 *
 * 如，输入： BabA 输出： aABb
 *
 * 规则 3 ：非英文字母的其它字符保持原来的位置。
 *
 *
 * 如，输入： By?e 输出： Be?y
 *
 * 数据范围：输入的字符串长度满足 1≤n≤1000
 *
 * 输入描述：
 * 输入字符串
 * 输出描述：
 * 输出字符串
 * 示例1
 * 输入：
 * A Famous Saying: Much Ado About Nothing (2012/8).
 * 复制
 * 输出：
 * A aaAAbc dFgghh: iimM nNn oooos Sttuuuy (2012/8).
 */
public class TestHW26 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        String str = "";
        while (in.hasNextLine()) {
            str = in.nextLine();
        }
        int len = str.length();
        if (len < 1 || len > 1000)return;
        sort2(str);

    }

    public static void sort2(String str) {
        String str2 = "";
        int len = str.length();
        for (int num = 65; num <= 90; num++) {
            // int len = str.length();
            int index = 0;
            while (index < len) {
                // char ch = str.substring(index, index+1).toCharArray()[0];
                char ch = str.charAt(index);
                // System.out.println(ch);
                if ((ch >= 65 && ch <= 90) || (ch >= 97 && ch <= 122)) {
                    char ch2 = (ch + "").toUpperCase().charAt(0);
                    if (ch2 == num) {
                        str2 += ch;
                    }
                }
                index++;
            }
        }
        // System.out.println(str2);
        //替换
        int index = 0;
        int index2 = 0;
        String result = "";
        while(index<len){
            char ch = str.charAt(index);
            if ((ch >= 65 && ch <= 90) || (ch >= 97 && ch <= 122)) {
                ch = str2.charAt(index2);
                index2++;
                result+=ch;
            }else{
                result+=ch;
            }
            index++;
        }
        System.out.println(result);
    }
}
